package com.steel.yfmall.cloud.assistant.bean.result;

import com.steel.yfmall.cloud.assistant.bean.param.RequestOrderGoodsBean;
import com.steel.yfmall.cloud.components.utils.base.BaseServiceSearchBean;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class ResultOrderInfo extends BaseServiceSearchBean implements Serializable {
	/**
	 *
	 */
	private static final long serialVersionUID = 1L;


	private String masterOrderSn;

	/**
	 *  @Fields product_type_no 产品形态
	 */
	private String productTypeNo;

	/**
	 *  @Fields trans_type 交易类型 1：款到发货
	 */
	private Integer transType;

	/**
	 *  @Fields order_type 订单类型 0，现货订单 10，预售订单
	 */
	private Integer orderType;

	/**
	 *  @Fields relating_original_sn 货单关联的原订单号
	 */
	private String relatingOriginalSn;

	/**
	 *  @Fields relating_return_sn 货单关联退单编号
	 */
	private String relatingReturnSn;

	/**
	 *  @Fields relating_remoney_sn 货单关联退款单号
	 */
	private String relatingRemoneySn;

	/**
	 *  @Fields user_name 用户名
	 */
	private String userName;

	/**
	 *  @Fields company_code 下单公司编码
	 */
	private String companyCode;

	/**
	 *  @Fields company_name 下单公司公司名称
	 */
	private String companyName;

	/**
	 *  @Fields order_status 订单状态 0，未确认；1，已确认；2，已取消；3，完成；）
	 */
	private Integer orderStatus;

	/**
	 *  @Fields pay_status 支付总状态 0，未付款；1，部分付款；2，已付款；3，已结算）
	 */
	private Integer payStatus;

	/**
	 *  @Fields ship_status 发货总状态 0，未发货；1，备货中；2，部分发货；3，已发货；4，部分收货；5，客户已收货）
	 */
	private Integer shipStatus;

	/**
	 *  @Fields contract_status 合同状态 0 未生成  1已生成  2已取消
	 */
	private Integer contractStatus;

	/**
	 *  @Fields lock_status 订单锁定状态（0，未锁定；1，已锁定）
	 */
	private Integer lockStatus;

	/**
	 *  @Fields question_status 问题单状态 （0 否  1 是）
	 */
	private Integer questionStatus;

	/**
	 *  @Fields notice_status 通知收款状态 （0 否  1 是）
	 */
	private Integer noticeStatus;

	/**
	 *  @Fields split_status 拆单状态 0：未拆单；1：拆单中；2：已拆单；3：重新拆单
	 */
	private Integer splitStatus;

	/**
	 *  @Fields split_time 拆单时间
	 */
	private Date splitTime;

	/**
	 *  @Fields create_time 订单生成时间
	 */
	private Date createTime;

	/**
	 *  @Fields confirm_time 订单确认时间
	 */
	private Date confirmTime;

	/**
	 *  @Fields signing_time 签收时间
	 */
	private Date signingTime;

	/**
	 *  @Fields confirm_ship_time 订单确认收货时间
	 */
	private Date confirmShipTime;

	/**
	 *  @Fields finish_time 订单完成时间
	 */
	private Date finishTime;

	/**
	 *  @Fields clear_time 订单结算时间
	 */
	private Date clearTime;

	/**
	 *  @Fields question_time 设为问题单时间
	 */
	private Date questionTime;

	/**
	 *  @Fields lock_time 订单锁定时间
	 */
	private Date lockTime;

	/**
	 *  @Fields update_time 订单最后更新时间
	 */
	private Date updateTime;

	/**
	 *  @Fields notice_time 通知收款时间
	 */
	private Date noticeTime;

	/**
	 *  @Fields out_order_sn 外部-中冠订单编号
	 */
	private String outOrderSn;

	/**
	 *  @Fields out_contract_sn 外部-中冠合同编号
	 */
	private String outContractSn;

	/**
	 *  @Fields out_product_classify_code 外部-一级分类编码
	 */
	private String outProductClassifyCode;

	/**
	 *  @Fields total_delivery_cycle 订单总货期天数
	 */
	private Integer totalDeliveryCycle;

	/**
	 *  @Fields delivery_cycle_time 总货期时间
	 */
	private Date deliveryCycleTime;

	/**
	 *  @Fields promotion_ids 参加了哪些促销编号
	 */
	private String promotionIds;

	/**
	 *  @Fields promotion_titles 参加促销的名字(多个)
	 */
	private String promotionTitles;

	/**
	 *  @Fields referer 订单的来源媒体
	 */
	private String referer;

	/**
	 *  @Fields clear_status 关联结算单状态 0未关联  1已关联
	 */
	private Integer clearStatus;

	/**
	 *  @Fields loading_batch_code 装载批次信息
	 */
	private String loadingBatchCode;

	/**
	 *  @Fields pay_service_price 支付手续费用
	 */
	private BigDecimal payServicePrice;

	/**
	 *  @Fields shipping_total_fee 配送总费用
	 */
	private BigDecimal shippingTotalFee;

	/**
	 *  @Fields insure_total_fee 保价总费用
	 */
	private BigDecimal insureTotalFee;

	/**
	 *  @Fields pay_total_fee 支付总费用
	 */
	private BigDecimal payTotalFee;

	/**
	 *  @Fields total_payable 应付款总金额
	 */
	private BigDecimal totalPayable;

	/**
	 *  @Fields extra_services_price 增值服务价格
	 */
	private BigDecimal extraServicesPrice;

	/**
	 *  @Fields goods_amount 商品总金额
	 */
	private BigDecimal goodsAmount;

	/**
	 *  @Fields total_fee 订单总金额
	 */
	private BigDecimal totalFee;

	/**
	 *  @Fields total_settlement_price 订单结算总价
	 */
	private BigDecimal totalSettlementPrice;

	/**
	 *  @Fields settlement_difference_price 订单结算差额
	 */
	private BigDecimal settlementDifferencePrice;

	/**
	 *  @Fields money_paid 已付款金额
	 */
	private BigDecimal moneyPaid;

	/**
	 *  @Fields surplus 订单使用余额
	 */
	private BigDecimal surplus;

	/**
	 *  @Fields bonus_ids 使用红包ID
	 */
	private String bonusIds;

	/**
	 *  @Fields bonus_price 使用红包金额
	 */
	private BigDecimal bonusPrice;

	/**
	 *  @Fields goods_qty 订单商品总数
	 */
	private Integer goodsQty;

	/**
	 *  @Fields goods_weight 商品总重量
	 */
	private BigDecimal goodsWeight;

	/**
	 *  @Fields clear_goods_weight 实际商品结算重量
	 */
	private BigDecimal clearGoodsWeight;

	/**
	 *  @Fields discount 订单商品折扣
	 */
	private BigDecimal discount;

	/**
	 *  @Fields integral 使用积分数量
	 */
	private BigDecimal integral;

	/**
	 *  @Fields integral_money 使用积分金额
	 */
	private BigDecimal integralMoney;

	/**
	 *  @Fields postscript 订单附言，由用户提交订单前填写
	 */
	private String postscript;

	/**
	 *  @Fields to_buyer 商家给客户的留言,当该字段有值时可以在订单查询看到
	 */
	private String toBuyer;

	/**
	 *  @Fields cancel_code 取消原因编码
	 */
	private String cancelCode;

	/**
	 *  @Fields cancel_reason 取消原因描述
	 */
	private String cancelReason;

	/**
	 *  @Fields is_push_system 是否推送外部系统
	 */
	private Integer isPushSystem;

	/**
	 *  @Fields staff_code 业务员编码
	 */
	private String staffCode;

	/**
	 *  @Fields sale_area_code 业务销售区域编码
	 */
	private String saleAreaCode;

	/**
	 *  @Fields sale_area_name 业务销售区域名称
	 */
	private String saleAreaName;

	/**
	 *  @Fields source 0:未处理2:线上订单
	 */
	private Integer source;

	/**
	 *  @Fields is_pick_up 是否为自提单 0 配送 1自提
	 */
	private Integer isPickUp;

	/**
	 *  @Fields pree_occupy 0:未占用;1:已占用库存
	 */
	private Integer preeOccupy;

	/**
	 *  @Fields unit_title 计价单位 t/吨  kg/千克 g/克
	 */
	private String unitTitle;

	/**
	 *  @Fields supplier_code 供应商信息-卖家信息
	 */
	private String supplierCode;

	/**
	 *  @Fields supplier_name 供应商信息-卖家名称
	 */
	private String supplierName;

	/**
	 *  @Fields site_code 订单平台渠道
	 */
	private String siteCode;

	/**
	 *  @Fields channel_code 订单来源
	 */
	private String channelCode;

	/**
	 *  @Fields shop_name 订单店铺名称
	 */
	private String shopName;

	/**
	 *  @Fields user_mobile 注册手机号码
	 */
	private String userMobile;

	/**
	 *  @Fields ship_cancel_status 通知撤单状态 0：不通知  1：通知
	 */
	private Integer shipCancelStatus;

	/**
	 *  @Fields pallet_merchant 托盘客商信息
	 */
	private String palletMerchant;

	/**
	 *  @Fields instead_user_name 代下单用户信息
	 */
	private String insteadUserName;

	/**
	 *  @Fields customer_contract_num 框架合同编码
	 */
	private String customerContractNum;

	/**
	 *  @Fields settlement_type 结算方式(1锁价2月末定价)
	 */
	private Integer settlementType;

	/**
	 *  @Fields settlement_ticket 结票方式(1:一票结、2:两票结)
	 */
	private Integer settlementTicket;

	/**
	 *  @Fields protocol_type 协议类型:1平台协议,2客户协议
	 */
	private Integer protocolType;

	/**
	 *  @Fields version 订单版本批次号
	 */
	private Integer version;

	private int start;

	private int limit;

	/**
	 * 地址
	 */
	private String address;

	/**
	 * 收货人名称
	 */
	private String consignee;

	/**
	 * 收货人手机号
	 */
	private String mobile;

	/**
	 * 定价区域编码
	 */
	private String priceAreaCode;

	/**
	 * 定价区域描述
	 */
	private String priceAreaName;

	/**
	 * 订单状态名称
	 */
	private String orderStatusName;

	/**
	 *  @Fields pay_status 支付总状态 0，未付款；1，部分付款；2，已付款；3，已结算）
	 */
	private String payStatusName;

	/**
	 *  @Fields ship_status 发货总状态 0，未发货；1，备货中；2，部分发货；3，已发货；4，部分收货；5，客户已收货）
	 */
	private String shipStatusName;

	/**
	 * 配送方式名称
	 */
	private String isPickUpName;

	/**
	 * 结算方式名称
	 */
	private String settlementTypeName;

	/**
	 * 结票方式名称
	 */
	private String settlementTicketName;

	/**
	 * 订单类型
	 */
	private String orderTypeName;

	private String questionStatusName;

	/**
	 * 商品名称，逗号分割
	 */
	private String goodsNameString;

	/**
	 * 6位码，逗号分割
	 */
	private String goodsSnString;

	/**
	 * 仓库名称，逗号分割
	 */
	private String depotNameString;

	/**
	 * 产品形态，逗号分割
	 */
	private String productTypeNoString;


	/**
	 * 支付方式名称
	 */
	private String payName;

	// 商品集合
	private List<RequestOrderGoodsBean> orderGoodsInfo;

}
